/*
 * Copyright 2011 Philippe Blanc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package me.l1k3.fx.client.channel.impl;

import me.l1k3.fx.client.channel.inter.StyleListCSS3;

import com.google.gwt.core.client.JavaScriptObject;

public final class StylesList extends JavaScriptObject implements StyleListCSS3 {
    
    protected StylesList() { 
        
    }
    
    //- - - factory
    
    public final static native StylesList create() /*-{ 
        if(!Array.prototype.indexOf){Array.prototype.indexOf=function(item,start){for(var i=start||0;i<this.length;i++) if(this[i]==item) return i; return -1;};}
        return new Array(); 
    }-*/;

    //- - -
    
    @Override
    public final void addStyle(String style) {
        if(style!=null)
        this.push(style);
    }
    
    public final native void push(String style) /*-{
        if(this.indexOf(style)<0)
        this[this.length] = style;
    }-*/;
    
    public final native String styles() /*-{
        return this.join(',');
    }-*/;
    
    public final native int length() /*-{
        return this.length;
    }-*/;
}
